package com.example.config;

import com.example.service.UserService;
import org.flowable.idm.api.Group;
import org.flowable.idm.engine.impl.persistence.entity.GroupEntityImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 自定义组实体管理器
 * 用于集成外部用户组系统
 */
@Component
public class CustomGroupEntityManager {
    
    // 注入您的用户服务
    @Autowired
    private UserService userService;
    
    public Group findGroupById(String groupId) {
        // 在实际应用中，这里应该调用外部用户组服务获取组信息
        // 目前为演示目的，构造一个简单的组对象
        GroupEntityImpl group = new GroupEntityImpl();
        group.setId(groupId);
        group.setName(groupId);
        group.setType("assignment");
        return group;
    }
    
    public List<Group> findGroupsByUser(String userId) {
        // 调用外部用户服务获取用户所属的组
        List<UserService.Group> userGroups = userService.findGroupsByUser(userId);
        return userGroups.stream().map(g -> {
            GroupEntityImpl flowableGroup = new GroupEntityImpl();
            flowableGroup.setId(g.getId());
            flowableGroup.setName(g.getName());
            flowableGroup.setType(g.getType());
            return flowableGroup;
        }).collect(Collectors.toList());
    }
}